//自定义组件：子传父
我给谁绑定的事件，就在该组件中去触发这个事件
触发这个事件就在student中
//触发student组件实例对象身上的atguigu事件
this.$emit('autigu')


//路由
1，路由就是一组key-value的对应关系
key为路径，value可能是function和component
2，多个路由，需要经过路由器的管理
为了是实现spa的应用（也就是单页面应用）

前端路由：
1，理解：value是component，用于展示页面内容。
2，工作过程：当浏览器的路径改变时，对应的组件就会显示

后端路由：
1，理解：value是function，用于处理客户端提交的请求
2，工作过程：服务器接收到一个请求时，
根据请求路径找到匹配的函数来处理请求，返回响应数据。

//路由的使用
路由功能就是通过URL跳转到不同的组件。
1，下载vue-router@3  router4只能在vue3中使用，router3才能在vue2中使用
在跟组件中也就是app组件中

<router-link to='/about'>About</router-link>
<router-link to='/home'>Home</router-link>

还有main.js中引入
//引入VueRouter
import VueRouter from 'vue-router'
//引入路由
import router from './router'

应用插件
Vue.use(VueRouter)

创建vm
new Vue({
    el:'#app'
    render:p => p(App)
    router:router
})


创建一个router文件创建一个index.js
//该文件专门用于创建整个应用的路由器
import VueRouter from 'vue-router'
//引入组件
import About from './components/About'
import Home from './components/Home'
创建并暴露一个路由器
export default const router = new VueRouter({
    routes:[
        {
            path:'/about',
            component:About

        },
        {
            path:'/home',
            component:Home
            
        },
    ]
})


//注意点：
1,路由组件通常存放在pages文件夹，一般组件通常存放在components文件夹。
2，通过切换，‘隐藏’了的路由组件，默认是被销毁掉的，需要的时候再去挂载。
3，每个组件都有自己的$route属性，里面存储着自己的路由信息
4,整个应用只有一个router，可以通过组建的$router属性获取到


//嵌套路由(多级路由)